const BASE_URL = 'https://www.uinav.com'
// const BASE_URL = 'https://ugo.botue.com'

// 封装一个公共的请求方法
export default function request({
	url,
	method,
	isAuth,
	data = {},
	showLoading = true
}) {
	return new Promise((resolve, reject) => {

		// header默认是空的,如果请求无须token,那么header传空对象
		let header = {}

		// 如果请求需要token,传Authorization
		if (isAuth) {
			// 从storage取token
			let token = uni.getStorageSync('token')
			if (!token) {
				// 如果用户需要登录态,而且又没有登录,那么跳转登录
				uni.navigateTo({
					url: '/pages/login/login'
				})
				return
			}
			header = {
				Authorization: token
			}
		}

		// 请求前,默认开启loading
		if (showLoading) {
			uni.showLoading({
				title: '加载中...',
				mask: true
			})
		}

		uni.request({
			url: BASE_URL + url,
			data,
			method,
			header,
			success: (res) => {
				// console.log(res)
				let {
					meta,
					message
				} = res.data
				if (meta.status === 200) {
					// console.log(message)
					resolve(message)
				} else {
					// 这个错误提示,它是后台发给前端的,
					//前端处理,弹框提示用户
					uni.showModal({
						content: meta.msg
					})
					// 把这个错误提示传给调用的地方
					reject(meta.msg)
				}
			},
			fail() {
				// 网络错误
				// 处理,提示并reject
				uni.showModal({
					content: '网络错误，请重试'
				})
				// 把这个错误提示传给调用的地方
				reject(new Erorr('网络错误，请重试'))
			},
			complete() {
				// 请求结束后,关闭loading
				if (showLoading) {
					uni.hideLoading()
				}
			}
		})
	})
}
